package com.sc.nft.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sc.nft.dto.TaskParticipationRecordDTO;
import com.sc.nft.dto.TaskRewardListDTO;
import com.sc.nft.entity.SaasUserTask;
import com.sc.nft.entity.dto.TaskStarRewardListDTO;
import com.sc.nft.entity.vo.*;

import java.util.List;

/**
 * 用户任务命中(SaasUserTask)表服务接口
 *
 * @author 王伟成
 * @since 2024-01-11 15:10:00
 */
public interface SaasUserTaskService{

    /**
     * 任务奖励列表(这个是哪些用户完成任务的)
     *
     * @param taskRewardListDTO
     * @return
     */
    IPage<TaskRewardListVO> taskRewardList(TaskRewardListDTO taskRewardListDTO);

    /**
     * 根据id获取奖励
     *
     * @param id
     * @return
     */
    List<SaasUserTaskIdGainAwardVO> getByUserTaskIdGainAward(Long id);
    /**
     * 任务参与记录
     *
     * @param taskParticipationRecordDTO
     * @return
     */
    IPage<TaskParticipationRecordVO> taskParticipationRecord(TaskParticipationRecordDTO taskParticipationRecordDTO);

    /**
     * 查询进度
     *
     * @param id
     * @return
     */
    SaasTaskCheckTheProgressVO checkTheProgress(Long id);

    /**
     * 任务星级奖励列表
     * @param taskStarRewardListDTO
     * @return
     */
    IPage<TaskStarRewardListVO> taskStarRewardList(TaskStarRewardListDTO taskStarRewardListDTO);
    /**
     * 星球任务参与记录
     * @param taskParticipationRecordDTO
     * @return
     */
    IPage<TaskParticipationRecordVO> taskStarParticipationRecord(TaskParticipationRecordDTO taskParticipationRecordDTO);

}
